package com.nuanshui.heatedloan.credit.facade;

import com.nuanshui.heatedloan.credit.form.CustomerCreditAuditForm;
import com.nuanshui.heatedloan.credit.model.AuditRequestParam;
import com.nuanshui.heatedloan.credit.model.CreditAuditDetail;
import com.nuanshui.heatedloan.credit.model.CreditAuditInfo;
import com.nuanshui.heatedloan.credit.request.ClosedDetailed;
import com.nuanshui.heatedloan.credit.request.LetterTrialNote;
import com.nuanshui.heatedloan.credit.request.OperationLogContent;
import com.nuanshui.heatedloan.pageable.Pager;

import java.util.List;

/**
 * Created by wangxw on 2017/7/29.
 */
public interface CustomerCreditAuditService {

    /***
     *  1 借款列表  2 未分配  3  初审列表  4 终审列表
     * @param type
     * @param pager
     * @param param
     * @return
     */
   public Pager<CreditAuditInfo> getCreditAuditInfo(int type, Pager<CreditAuditInfo> pager, AuditRequestParam param);

    /***
     * 获取历史清单接口
     * @param pager
     * @param param
     * @return
     */
   public Pager<ClosedDetailed> getHistoryCreditAuditInfo(Pager<ClosedDetailed> pager, AuditRequestParam param);


    /***
     * 获取订单的相关信息
     * @param orderId
     * @return
     */
   public CreditAuditDetail getCreditAuditInfoVO(String orderId);

    /***
     * 根据订单号和type区分
     * @param creditAuditDetail
     * @param orderId
     * @return
     */
   public void getCreditAuditPhoneInfo( String orderId,CreditAuditDetail creditAuditDetail);

    /***
     * 保存一条信审数据
     * @param CustomerCreditAuditForm
     */
   public void save(CustomerCreditAuditForm CustomerCreditAuditForm);

    /***
     * 根据订单号查找所有的日志
     * @param orderId
     * @return
     */
   public List<OperationLogContent> getOperationLog(String orderId);

    /***
     * 查询信审注记
     * @param orderId
     * @return
     */
   public void getLetterTrialNote(String orderId,CreditAuditDetail creditAuditDetail);

    /***
     * 保存审信注记信息 也可能是修改   这个由风控判断  核心信息只需要传数据
     * @param letterTrialNote
     */
   public void create(LetterTrialNote letterTrialNote,int type,String userId);

    /***
     * 分配订单   1 分配  2 初审退回  3 结案
      * @param customerCreditAuditForms
     */
    public void distributionOrder(List<CustomerCreditAuditForm> customerCreditAuditForms,int type,String operationId);

    /***
     * 终审退回
     * @param customerCreditAuditForms
     * @param type   3终审退回
     * @return
     */
    public String finalBack( List<CustomerCreditAuditForm> customerCreditAuditForms,int type,String operationId);


}
